Computers and other electronic systems contains various components that may malfunction during the life of the system. In order to reduce and/or remedy such malfunctions, some systems include built-in features such as the ability to monitor and control the “health” or performance of the system hardware. Such features are sometimes referred to as system management, but also may be referred to by other names such as management, hardware management, platform management, etc. System management features may include, for example, the monitoring of elements such as temperatures, voltages, fans, power supplies, bus errors, system physical security, etc. In addition, system management features may also include determining information that helps identify a failed hardware component, and issuing an alert specifying that a component has failed.
One of the components that may be used to handle system management functions is a system management controller (also referred to herein as a “controller”). A system management controller may be a microprocessor, micro-controller, application specific integrated circuit (ASIC), or other type of processing unit that controls system management tasks. A system management controller may perform tasks such as receiving system management information, sending messages to control system performance, logging system management information, etc. For example, a management controller may receive an indication from a temperature sensor that system temperature is rising, may send a command to increase fan speed, and may log the temperature reading.
One of the management controllers in a system may perform the role of the central system management controller and perform central management functions such as for example logging events, collecting field replaceable unit (FRU) inventory information, user interface, host CPU interface, etc. The central management controller for a system may be referred to as the baseboard management controller (BMC) for the system. Other non-central management controllers may be referred to as satellite management controllers (SMCs). An SMC may perform system management for a particular part or feature of a system. For example, a computer system may contain a number of circuit boards and other components that are connected by busses, with one board containing a BMC for that system and other boards containing SMCs that performs other system management functions.
Some system management controllers have the ability to operate in a BMC mode or in an SMC mode (i.e., to perform in the role of a BMC or an SMC). In some prior systems, a system management controller that is attached to a circuit board may adapt its functionality based on the slot in which that board is inserted. In such a system, a specific slot in a system chassis may be reserved for a board that performs the BMC functionality for that system and may have a pin that provides such an indication to the resident module. In this case, a system management controller may determine upon reset if it is in the BMC slot, and if so may set itself to act as the BMC (i.e., set itself to BMC mode). In such systems, a person assembling the system or changing circuit boards may need to determine which slot is the BMC slot and to ensure that a board with desired BMC capabilities is placed in the appropriate BMC slot.